Fitness activity related messaging

ABSTRACT

In one embodiment, a method for generating a message to a friend of a user is provided, comprising: processing activity data of a first user measured by an activity monitoring device to update a value of an activity metric for the first user; identifying a change in an inequality relationship between the value of the activity metric for the first user and a value of the activity metric for a second user; in response to identifying the change in the inequality relationship, prompting the first user to generate a message to the second user.

CLAIM OF PRIORITY

This application claims priority to U.S. application Ser. No.14/271,412, filed May 6, 2014, entitled “Notifications on a User DeviceBased on Activity Detected by an Activity Monitoring Device,” thedisclosure of which is herein incorporated by reference in its entiretyfor all purposes.

RELATED APPLICATIONS

This application is related to U.S. application Ser. No. 14/445,034,filed the same day as the present application, entitled “NotificationsRegarding Interesting or Unusual Activity Detected from an ActivityMonitoring Device,” the disclosure of which is herein incorporated byreference in its entirety for all purposes.

FIELD

The present disclosure relates to systems and methods for fitnessactivity related messaging.

BACKGROUND

In recent years, the need for health and fitness has grown tremendously.The growth has occurred due to a better understanding of the benefits ofgood fitness to overall health and wellness. Unfortunately, althoughtoday's modern culture has brought about many new technologies, such asthe Internet, connected devices and computers, people have become lessactive. Additionally, many office jobs require people to sit in front ofcomputer screens for long periods of time, which further reduces aperson's activity levels. Furthermore, much of today's entertainmentoptions involve viewing multimedia content, computer social networking,and other types of computer involved interfacing. Although such computeractivity can be very productive as well as entertaining, such activitytends to reduce a person's overall physical activity.

To provide users concerned with health and fitness a way of measuring oraccounting for their activity or lack thereof, fitness activity trackershave recently grown in popularity. Fitness activity trackers are used tomeasure activity, such as walking, motion, running, sleeping, beinginactive, bicycling, exercising on an elliptical trainer, and the like.Typically, the data collected by such devices can be transferred andviewed on a computing device.

It is in this context that embodiments of the invention arise.

SUMMARY

Embodiments described in the present disclosure provide systems,apparatus, computer readable media, and methods for fitness activityrelated messaging.

In one embodiment, a method for generating a message to a friend of auser is provided, comprising: processing activity data of a first usermeasured by an activity monitoring device to update a value of anactivity metric for the first user; identifying a change in aninequality relationship between the value of the activity metric for thefirst user and a value of the activity metric for a second user; inresponse to identifying the change in the inequality relationship,prompting the first user to generate a message to the second user.

In one embodiment, the change in the inequality relationship is definedby the value of the activity metric for the first user changing, frombeing less than the value of the activity metric for the second user, tobeing greater than the value of the activity metric for the second user.

In one embodiment, the change in the inequality relationship is definedby the value of the activity metric for the first user changing, frombeing greater than the value of the activity metric for the second user,to being less than the value of the activity metric for the second user.

In one embodiment, the inequality relationship between the value of theactivity metric for the first user and the value of the activity metricfor the second user defines a relative ranking of the first user and thesecond user on a competitive leaderboard for the activity metric.

In one embodiment, the change in the inequality relationship defines achange in the relative ranking of the first user and the second user onthe competitive leaderboard for the activity metric.

In one embodiment, prompting the user to generate a message includesidentifying the change in the relative ranking of the first user and thesecond user.

In one embodiment, prompting the first user to generate a message to thesecond user includes triggering a notification to the first user, thenotification providing access to an interface configured to receiveinput from the first user to define content of the message to the seconduser.

In one embodiment, the notification is a push notification to a mobiledevice.

In one embodiment, the interface provides at least one option to send apredefined message to the second user.

In one embodiment, the activity metric is defined by one or more of thefollowing: stepcount, elevation climbed, distance traveled, activeamount of time.

In another embodiment, a method for providing a competitive leaderboardis provided, comprising: receiving a request to display a messagingthread, the messaging thread defined by one or more messages betweenmembers of the messaging thread; in response to the request, presentingthe messaging thread; for each of the members, retrieving a value of anactivity metric; determining a ranked order for the members based oneach member's respective value of the activity metric; presenting aleaderboard in conjunction with the messaging thread, the leaderboarddefined to display each member's value of the activity metric accordingto the ranked order; wherein the method is executed by at least oneprocessor.

In one embodiment, the value for the activity metric for a given memberis processed from activity data captured by an activity monitoringdevice associated with the given member.

In one embodiment, receiving the request to display the messaging threadis defined by access activity associated with an inbox defined for amember of the messaging thread.

In one embodiment, the method further comprises: determining whethereach of the members of the messaging thread are linked to each other ona social network, and if so, then performing the operation of presentingthe leaderboard, and if not, then not performing the operation ofpresenting the leaderboard.

In one embodiment, the activity metric is selected from a quantity ofsteps taken, a quantity of floors climbed, or a quantity of caloriesburned.

In another embodiment, a method for generating a competitive group isprovided, comprising: determining a number of messages in a messagethread; when the number of messages in the message thread reaches apredefined threshold, providing an option to a first member of themessage thread to generate a competitive group for members of themessage thread; in response to activation of the option by the firstmember, sending invitations to remaining members of the message threadto join the competitive group; receiving responses to the sentinvitations; generating the competitive group, the competitive groupdefined to include the first member and, each of the remaining membersof the message thread that provides a positive response to theinvitation; wherein membership in the competitive group provides accessto a value of an activity metric for each of the members of thecompetitive group.

In one embodiment, the value for the activity metric for a member of thecompetitive group is processed from activity data captured by anactivity monitoring device associated with the member.

In one embodiment, activation of the option includes identifying theactivity metric for which membership in the competitive group providesaccess.

In one embodiment, the activity metric is selected from a quantity ofsteps taken, a quantity of floors climbed, or a quantity of caloriesburned.

In another embodiment, a method for forming a competitive group isprovided, comprising: determining a quantity of messaging from a firstuser to one or more second users; when the quantity of messaging exceedsa predefined threshold, then providing an option to the first user tocreate a competitive group inclusive of the first user and the one ormore second users; wherein membership in the competitive group providesaccess to values of an activity metric for each of the members of thecompetitive group.

In one embodiment, the quantity of messaging is defined by a number ofmessages sent from the first user to the one or more second users.

In one embodiment, the quantity of messaging is defined by a frequencyof messages sent from the first user to the one or more second users.

In one embodiment, the method further comprises: in response toactivation of the option to create the competitive group, sendinginvitations to each of the one or more second users to join thecompetitive group; receiving responses to the invitations; generatingthe competitive group based on the responses to the invitations.

In one embodiment, membership in the competitive group provides accessto a group leaderboard, the group leaderboard configured to present aranked order of the members of the group according to the values of theactivity metric for each of the members of the competitive group. Inanother embodiment, a method is provided, comprising: receiving activitydata associated with a first user account, the activity data associatedwith the first user account being determined from motion data detectedby an activity tracking device associated with the first user account;receiving activity data associated with a second user account, theactivity data associated with the second user account being determinedfrom motion data detected by an activity tracking device associated withthe second user account; processing the activity data associated withthe first user account to determine a cumulative activity level for thefirst user account; processing the activity data associated with thesecond user account to determine a cumulative activity level for thesecond user account; comparing the cumulative activity levels for thefirst and second user accounts; in response to detecting a passingevent, defined by the cumulative activity level of the first or seconduser account surpassing that of the other, then generating and sending amessage to the first user account and/or the second user account, themessage identifying the passing event.

In one embodiment, generating the message includes selecting a messagetemplate for the passing event, and populating the message template withcustomized data based on the activity metrics of the first and/or seconduser account.

In one embodiment, selecting the message template is based on amagnitude of a difference between the cumulative activity levels of thefirst and second user accounts.

In one embodiment, selecting the message template is based on whetherthe message is to be sent to the first user account or the second useraccount.

In one embodiment, the activity metrics include one or more of stepstaken, stairs climbed, floors climbed, distance traveled, activeminutes, heart rate, and/or sleep data.

In one embodiment, sending the message to the first or second useraccount effects display of the message on one or more of the activitytracking device or a mobile device that is associated to the first orsecond user account, respectively.

In one embodiment, sending the message is defined by one or more of apush notification, a private message, or an e-mail.

In one embodiment, the method further includes: generating and sending amessage identifying the passing event to a third user account, the thirduser account being identified as a member of a social graph of the firstor second user account.

Other aspects will become apparent from the following detaileddescription, taken in conjunction with the accompanying drawings,illustrating by way of example the principles of embodiments describedin the present disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments described in the present disclosure may best beunderstood by reference to the following description taken inconjunction with the accompanying drawings.

FIG. 1A shows a block diagram of an activity tracking device, inaccordance with one embodiment of the present invention.

FIG. 1B illustrates an example of an activity tracking device includingexample components utilized for tracking activity and motion of thedevice, and associated interfaces to a display screen, in accordancewith one embodiment of the present invention.

FIG. 2 illustrates an example of activity tracking device incommunication with a remote device, in accordance with one embodiment ofthe present invention.

FIG. 3 illustrates an interface configured to display activitymetrics/data based on activity data recorded by an activity trackingdevice, in accordance with an embodiment of the invention.

FIG. 4 illustrates a listing of members from a social graph of a user,in accordance with an embodiment of the invention.

FIG. 5A illustrates an interface for selected a type of message to sendto a user on a social network, in accordance with an embodiment of theinvention.

FIG. 5B illustrates a confirmation of a sent message to another user ofa social network, in accordance with an embodiment of the invention.

FIG. 6 illustrates an interface for viewing contents of an inbox of auser, in accordance with an embodiment of the invention.

FIG. 7 illustrates a system for sending and receiving messages betweenusers of a social network, in accordance with an embodiment of theinvention.

FIG. 8 illustrates a method for sending a message to user of a socialnetwork, in accordance with an embodiment of the invention.

FIG. 9 conceptually illustrates sending a message from a first user to asecond user, in accordance with an embodiment of the invention.

FIG. 10A conceptually illustrates generation of a leaderboard via amessaging procedure, in accordance with an embodiment of the invention.

FIG. 10B illustrates a view of a message thread and accompanyingleaderboard, in accordance with the embodiment of FIG. 10A.

FIG. 10C conceptually illustrates creation of a competitive group basedon an amount of messaging between users, in accordance with anembodiment of the invention.

FIG. 11 illustrates a system for providing leaderboard functionality inconjunction with messaging, in accordance with an embodiment of theinvention.

FIG. 12A conceptually illustrates determination of characteristicactivity levels for a given time period, and the application thereof toidentify unusual activity, in accordance with an embodiment of theinvention.

FIGS. 12B and 12C illustrate activity levels for a user on two differentdays, in accordance with an embodiment of the invention.

FIG. 12D illustrates a graph showing characteristic activity levels fora week, in accordance with an embodiment of the invention.

FIG. 13A is a flow diagram conceptually illustrating messaging generatedfor a group event, in accordance with an embodiment of the invention.

FIG. 13B illustrates a graph of activity metric versus time for a groupevent, in accordance with an embodiment of the invention.

FIG. 13C illustrates an interface for displaying data pertaining to agroup event, in accordance with an embodiment of the invention.

FIG. 13D illustrates a system for providing notifications to a userdevice, in accordance with an embodiment of the invention.

FIG. 14 illustrates an example where various types of activities ofusers can be captured or collected by activity tracking devices, inaccordance with various embodiments of the present invention.

DETAILED DESCRIPTION

Embodiments described in the present disclosure provide systems,apparatus, computer readable media, and methods for fitness activityrelated messaging.

It should be noted that there are many inventions described andillustrated herein. The present inventions are neither limited to anysingle aspect nor embodiment thereof, nor to any combinations and/orpermutations of such aspects and/or embodiments. Moreover, each of theaspects of the present inventions, and/or embodiments thereof, may beemployed alone or in combination with one or more of the other aspectsof the present inventions and/or embodiments thereof. For the sake ofbrevity, many of those permutations and combinations will not bediscussed separately herein.

Further, in the course of describing and illustrating the presentinventions, various circuitry, architectures, structures, components,functions and/or elements, as well as combinations and/or permutationsthereof, are set forth. It should be understood that circuitry,architectures, structures, components, functions and/or elements otherthan those specifically described and illustrated, are contemplated andare within the scope of the present inventions, as well as combinationsand/or permutations thereof.

FIG. 1 shows a block diagram of an activity tracking device 100, inaccordance with one embodiment of the present invention. The activitytracking device 100 is contained in a housing, which may be worn or heldby a user. The housing may be in the form of a wristband, a clip ondevice, a wearable device, or may be held by the user either in theuser's hand or in a pocket or attached to the user's body. The activitytracking device 100 includes device components 102, which may be in theform of logic, storage, and glue logic, one or more processors,microelectronics, and interfacing circuitry. In one example, thecomponents 102 will include a processor 106, memory 108, a wirelesstransceiver 110, a user interface 114, biometric sensors 116, andenvironmental sensors 118.

The environmental sensors 118 may be in the form of motion detectingsensors. In some embodiments, a motion sensor can be one or more of anaccelerometer, or a gyroscope, or a rotary encoder, or a caloriemeasurement sensor, or a heat measurement sensor, or a moisturemeasurement sensor, or a displacement sensor, or an ultrasonic sensor,or a pedometer, or an altimeter, or a linear motion sensor, or anangular motion sensor, or a multi-axis motion sensor, or a combinationthereof. The biometric sensors 116 can be defined to measurephysiological characteristics of the user that is using the activitytracking device 100. The user interface 114 provides a way forcommunicating with the activity tracking device 100, in response to userinteraction 104. The user interaction 104 can be in the form of physicalcontact (e.g., without limitation, tapping, sliding, rubbing, multipletaps, gestures, etc.).

In some embodiments, the user interface 114 is configured to receiveuser interaction 104 by way of proximity sensors, button presses, touchsensitive screen inputs, graphical user interface inputs, voice inputs,sound inputs, etc. The activity tracking device 100 can communicate witha client and/or server 112 using the wireless transceiver 110. Thewireless transceiver 110 will allow the activity tracking device 100 tocommunicate using a wireless connection, which is enabled by wirelesscommunication logic. The wireless communication logic can be in the formof a circuit having radio communication capabilities. The radiocommunication capabilities can be in the form of a Wi-Fi connection, aBluetooth connection, a low-energy Bluetooth connection, or any otherform of wireless tethering or near field communication. In still otherembodiments, the activity tracking device 100 can communicate with othercomputing devices using a wired connection (not shown). As mentioned,the environmental sensors 118 can detect motion of the activity trackingdevice 100.

The motion can be activity of the user, such as walking, running, stairclimbing, etc. The motion can also be in the form of physical contactreceived on any surface of the activity tracking device 110, so long asthe environmental sensors 118 can detect such motion from the physicalcontact. Such physical contact may be in the form of a tap or multipletaps by a finger upon the housing of the activity tracking device 100.

FIG. 1B illustrates an example of activity tracking device 100 of FIG.1A, showing some additional example components utilized for trackingactivity and motion of the device, and associated interfaces to displayscreen 122. In one embodiment, examples of a display screen 122 caninclude, but are not limited to, liquid crystal display (LCD) screens,light emitting diode (LED) screens, organic light emitting diode (OLED)screens, plasma display screens, etc.

As shown in FIG. 1B, the activity tracking device 100 includes logic158. Logic 158 may include activity tracking logic 140, motion-activatedmessaging logic 142, display interface logic 144, alarm management logic146, wireless communication logic 148, processor 106, and sensors 156.Additionally, storage (e.g. memory) 108, and a battery 154 can beintegrated within the activity tracking device 100. The activitytracking logic 140 can include logic that is configured to processmotion data produced by sensors 156, so as to quantify the motion andproduce identifiable metrics associated with the motion.

Some motions will produce and quantify various types of metrics, such asstep count, stairs climbed, distance traveled, very active minutes,calories burned, etc. The physical contact logic 142 can include logicthat calculates or determines when particular physical contact canqualify as an input. To qualify as an input, the physical contactdetected by sensors 156 should have a particular pattern that isidentifiable as input. For example, the input may be predefined to be adouble tap input, and the physical contact logic 142 can analyze themotion to determine if a double tap indeed occurred in response toanalyzing the sensor data produced by sensors 156.

The display interface logic 144 is configured to interface with theprocessor and the motion-activated messaging logic to determine whenspecific messages will be displayed on the display screen 122 of theactivity tracking device 100. The display interface logic 144 can act toturn on the screen, display metric information, display characters oralphanumeric information, display graphical user interface graphics, orcombinations thereof. Alarm management logic 146 can function to providea user interface and settings for managing and receiving input from auser to set an alarm. The alarm management logic can interface with atimekeeping module (e.g., clock, calendar, time zone, etc.), and cantrigger the activation of an alarm. The alarm can be in the form of anaudible alarm or a non-audible alarm.

A non-audible alarm can provide such alarm by way of a vibration. Thevibration can be produced by a motor integrated in the activity trackingdevice 100. The vibration can be defined to include various vibrationpatterns, intensities, and custom set patterns. The vibration producedby the motor or motors of the activity tracking device 100 can bemanaged by the alarm management logic 146 in conjunction with processingby the processor 106. The wireless communication logic 148 is configuredfor communication of the activity tracking device with another computingdevice by way of a wireless signal. The wireless signal can be in theform of a radio signal. As noted above, the radio signal can be in theform of a Wi-Fi signal, a Bluetooth signal, a low energy Bluetoothsignal, or combinations thereof. The wireless communication logic caninterface with the processor 106, storage 108 and battery 154 of device100, for transferring activity data, which may be in the form of motiondata or processed motion data, stored in the storage 108 to thecomputing device.

In one embodiment, processor 106 functions in conjunction with thevarious logic components 140, 142, 144, 146, and 148. The processor 106can, in one embodiment, provide the functionality of any one or all ofthe logic components. In other embodiments, multiple chips can be usedto separate the processing performed by any one of the logic componentsand the processor 106. Sensors 156 can communicate via a bus with theprocessor 106 and/or the logic components. The storage 108 is also incommunication with the bus for providing storage of the motion dataprocessed or tracked by the activity tracking device 100. Battery 154 isprovided for providing power to the activity tracking device 100.

FIG. 2 illustrates an example of activity tracking device 100 incommunication with a remote device 200. Remote device 200 is a computingdevice that is capable of communicating wirelessly with activitytracking device 100 and with the Internet 160. Remote device 200 cansupport installation and execution of applications. Such applicationscan include an activity tracking application 202. Activity trackingapplication 202 can be downloaded from a server. The server can be aspecialized server or a server that provides applications to devices,such as an application store. Once the activity tracking application 202is installed in the remote device 200, the remote device 200 cancommunicate or be set to communicate with activity tracking device 100(Device A). The remote device 200 can be a smartphone, a handheldcomputer, a tablet computer, a laptop computer, a desktop computer, orany other computing device capable of wirelessly interfacing with DeviceA and the Internet.

In one embodiment, remote device 200 communicates with activity trackingdevice 100 over a Bluetooth connection. In one embodiment, the Bluetoothconnection is a low energy Bluetooth connection (e.g., Bluetooth LE,BLE, or Bluetooth Smart). Low energy Bluetooth is configured forproviding low power consumption relative to standard Bluetoothcircuitry. Low energy Bluetooth uses, in one embodiment, a 2.4 GHz radiofrequency, which allows for dual mode devices to share a single radioantenna. In one embodiment, low energy Bluetooth connections canfunction at distances up to 50 meters, with over the air data ratesranging between 1-3 megabits (Mb) per second. In one embodiment, aproximity distance for communication can be defined by the particularwireless link, and is not tied to any specific standard. It should beunderstood that the proximity distance limitation will change inaccordance with changes to existing standards and in view of futurestandards and/or circuitry and capabilities.

Remote device 200 can also communicate with the Internet 160 using anInternet connection. The Internet connection of the remote device 200can include cellular connections, wireless connections such as Wi-Fi,and combinations thereof (such as connections to switches betweendifferent types of connection links). The remote device, as mentionedabove, can be a smartphone or tablet computer, or any other type ofcomputing device having access to the Internet and with capabilities forcommunicating with the activity tracking device 100.

A server 220 is also provided, which is interfaced with the Internet160. The server 220 can include a number of applications that servicethe activity tracking device 100, and the associated users of theactivity tracking device 100 by way of user accounts. For example, theserver 220 can include an activity management application 224. Theactivity management application 224 can include logic for providingaccess to various devices 100, which are associated with user accountsmanaged by server 220. Server 220 can include storage 226 that includesvarious user profiles associated with the various user accounts. Theuser account 228 a for user A and the user account 228 n for user N areshown to include various information.

The information can include, without limitation, data associated withmotion-activated messaging 230, user data, etc. The motion-activatedmessaging data 230 includes information regarding a user's preferences,settings, and configurations which are settable by the user or set bydefault at the server 220 when accessing a respective user account. Thestorage 226 will include any number of user profiles, depending on thenumber of registered users having user accounts for their respectiveactivity tracking devices. It should also be noted that a single useraccount can have various or multiple devices associated therewith, andthe multiple devices can be individually customized, managed andaccessed by a user. In one embodiment, the server 220 provides access toa user to view the user data 232 associated with activity trackingdevice.

The data viewable by the user includes the tracked motion data, which isprocessed to identify a plurality of metrics associated with the motiondata. The metrics are shown in various graphical user interfaces of awebsite enabled by the server 220. The website can include various pageswith graphical user interfaces for rendering and displaying the variousmetrics for view by the user associated with the user account. In oneembodiment, the website can also include interfaces that allow for dataentry and configuration by the user.

The monitoring device of the present inventions may use one, some or allof the following sensors to acquire physiological data, including thephysiological data outlined in the table below. All combinations andpermutations of physiological sensors and/or physiological data areintended to fall within the scope of the present inventions. Themonitoring device of the present inventions may include but is notlimited to the types one, some or all of sensors specified below toacquire the corresponding physiological data; indeed, other type(s) ofsensors may be employed to acquire the corresponding physiological data,which are intended to fall within the scope of the present inventions.Additionally, the device may derive the physiological data from thecorresponding sensor output data, but is not limited to the number ortypes of physiological data that it could derive from said sensor.

TABLE Physiological Sensors Physiological data acquired OpticalReflectometer Heart Rate, Heart Rate Variability Potential embodiments:SpO2 (Saturation of Peripheral Light emitter and receiver Oxygen) Multior single LED and photo Respiration diode arrangement Stress Wavelengthtuned for specific Blood pressure physiological signals ArterialStiffness Synchronous detection/amplitude Blood glucose levelsmodulation Blood volume Heart rate recovery Cardiac health MotionDetector Activity level detection Potential embodiments:Sitting/standing detection Inertial, Gyro or Accelerometer Falldetection GPS Skin Temp Stress EMG Muscle tension EKG Heart Rate, HeartRate Variability, Potential Embodiments: Heart Rate Recovery 1 leadStress 2 lead Cardiac health Magnetometer Activity level based onrotation Laser Doppler Power Meter Ultra Sound Blood flow Audio HeartRate, Heart Rate Variability, Heart Rate Recovery Laugh detectionRespiration Respiration type- snoring, breathing, breathing problemsUser's voice Strain gauge Heart Rate, Heart Rate Variability Potentialembodiment: Stress In a wrist band Wet sensor Stress Potentialembodiment: Swimming detection galvanic skin response Shower detection

Additional examples of types of data which may be acquired by, orprocessed from data acquired by, a monitoring device in accordance withembodiments of the invention, are further described in U.S. applicationSer. No. 14/221,234, filed Mar. 20, 2014, entitled “Portable MonitoringDevices for Processing Applications and Processing Analysis ofPhysiological Conditions of a User Associated With the PortableMonitoring Device,” the disclosure of which is herein incorporated byreference for all purposes.

FIG. 3 illustrates an interface configured to display activitymetrics/data based on activity data recorded by an activity trackingdevice, in accordance with an embodiment of the invention. It will beappreciated that the illustrated interface is provided by way of exampleonly, without limitation, for purposes of illustrating possible elementsof an interface which may be utilized by a user to understand theirpersonal activity metrics as well as those of friends. Broadly speaking,the illustrated interface is organized into various information modulesor panels which are configured to display various types of information.

A recent activity module 300 is configured to graphically displayvarious metrics from recently detected activity of the user, such as thenumber of calories burned over time, a number of steps taken over time,or a number of floors climbed over time. In the illustrated embodiment,the module 300 is configured to display a number of calories burnedduring the course of the present day. A steps module 302 is configuredto display a total number of steps taken over a given time period (e.g.last hour, current day, current week, etc.) or towards a particular goalor milestone. In one embodiment, the display of the step count isgraphically portrayed, e.g. by a circular meter.

A friends module 304 is configured to display a listing of friends ofthe user on a social network. The friends are members of a social graphof the user that is defined by the social network. In the illustratedembodiment, the listing of friends includes names (or user names) of thefriends of the user along with their profile pictures, and also includesa value of an activity metric for each of the friends. In theillustrated embodiment, each friend listed also includes a step countfor that friend. In one embodiment, the friends are listed according tothe activity metric, e.g. in descending order from highest to lowesttotal step count. In this manner, the friends module 304 provides aranked ordering of the friends of the user, and may also show where theuser ranks amongst his/her friends with respect to the particularactivity metric. As discussed in further detail below, the user mayinitiate messaging to a friend, e.g. by clicking on or otherwiseselecting the friend's entry in the friends module 304.

A calories module 306 is configured to display a number of caloriesburned by the user over a given period of time, e.g. during the currentday. In one embodiment, a graphical representation of the number ofcalories burned may be provided, such as a meter or graph.

A distance module 308 is configured to display a distance traveled bythe user over a given time period, e.g. during the current day. Thedistance traveled can also be graphically represented by a meter orgraph.

An active minutes module 310 is configured to display a number ofminutes for which the user has been engaged in increased levels ofactivity, during a given time period, e.g. during the current day. Thenumber of active minutes can be graphically represented by a meter orgraph.

A sleep module 314 is configured to display an amount of time that theuser has spent sleeping, e.g. during a recent time period such as theprevious 24-hour period, or the most recent period of sleep. In oneembodiment, the amount of sleep can be graphically represented by anidentified portion of a clock.

A food plan module 316 is configured to display information related tothe user's diet or food plan. In one embodiment, the food plan module316 is configured to display a number of calories remaining forconsumption by the user during that day before exceeding a target numberof calories. In one embodiment, the number of calories remaining can berepresented graphically by a meter.

A weight module 318 is configured to information related to the weightof the user, such as the current weight of the user or an amount ofweight remaining to lose in order to reach a target weight. In oneembodiment, the weight information can be graphically represented by ameter or graph.

FIG. 4 illustrates a listing of members from a social graph of a user,in accordance with an embodiment of the invention. The social graph isdefined on a social network of users, each of whom has an account on thesocial network. Each user's account is configured to track activity dataand metrics associated with that user, including that which is based ondata recorded by an activity tracking device associated with the user.In this manner, the social network differs from other types of socialnetworks in that activity data and metrics of various users can be madeavailable to members of the social graph of a user, and even to membersof the social network in general if the user so chooses based on usersettings.

Thus, in the illustrated embodiment, the listing of each member of thesocial graph of the user additionally includes a value for an activitymetric that is associated with that particular member. In theillustrated embodiment, a seven-day total step count is provided.Furthermore each of the listed members of the social graph is rankedaccording to their seven-day total step count, and the members of thesocial graph are listed in order according to their determined ranking.In this manner, the listing of members from the social graph of the useralso functions as a leaderboard, displaying a ranked ordering of usersbased on values for an activity metric for each of the users.

Though in the illustrated embodiment, a seven-day step total isutilized, it will be appreciated that in other embodiments, any activitymetric can be displayed and/or utilized for purposes of determining aranking of members of the social graph of the user, wherein the rankingis applied to determine the order of a listing of members of the socialgraph of the user. In some embodiments, the ranking may be determined bya combination of activity metrics, or with reference to individualizedgoals.

With continued reference to FIG. 4, the listing for the user “Johnny” isdefined to include a profile picture 400, and Johnny's seven-day steptotal (ref. 402, 115,068 steps). The listing/leaderboard of members ofthe social graph of the user additionally serves as a launch point forgenerating a message to another user. Broadly speaking, each user isassociated with an account that is defined to be capable of sending andreceiving messages to other users. In the illustrated embodiment, whenthe current user selects the listing for the user Johnny (e.g. byhovering a mouse pointer over, clicking on, or otherwise indicatingselection of, Johnny's listing entry), then several options formessaging are presented to the user.

In the illustrated embodiment, an icon 404 may be selected to initiategeneration of a normal message to the user Johnny. An icon 406 may beselected to initiate generation of a taunting message to the user JohnnyAnd an icon 408 can be selected to initiate generation of a cheeringmessage to the user Johnny Selection of any of the foregoing icons maytrigger display of a text entry field for the user to enter text todefine the message. In one embodiment, sending of a normal messagerequires entry of text, whereas sending of a taunting message or acheering message does not require entry of text.

FIG. 5A illustrates an interface for selected a type of message to sendto a user on a social network, in accordance with an embodiment of theinvention. In one embodiment, the interface shown can be configured todisplay on a mobile device, whereas in other embodiments, the interfacecan be configured display on any device capable of supporting thefunctionality described herein for selecting a type of message.

In one embodiment, the interface may have been reached by navigatingfrom a listing of friends of the current user on the social network,e.g. by selecting a particular friend from the listing in order to viewadditional details about the selected friend. In the illustratedembodiment, details about a friend of the current user named “Emily” aredisplayed, including the number of steps taken by Emily per day as wellas the date Emily joined the social network. A button 500 is providedfor navigating back to the listing of friends. A button 502 is providedfor initiating a procedure for generating a message to Emily, which asshown, has resulted in the display of a message type selection interface503 for determining a type of message to generate to the user Emily.

A button 504 is provided for generating a cheering message. Whenselected the button 504 is selected, the cheering message can be sentwithout any further input from the current user, or a text entryinterface can be presented to allow the current user to define text tobe included in the cheering message.

A button 506 is provided for generating a taunting message. When thebutton 506 is selected, the taunting message can be sent without anyfurther input from the current user, or a text entry interface can bepresented to allow the current user to define text to be included in thetaunting message.

A button 508 is provided for generating a generic message. In responseto triggering the button 508, a text entry interface is provided forallowing the current user to enter text to define the generic message.

A button 510 is provided for canceling the message type selectionoperation, such that no message will be generated or sent, and themessage type selection interface 503 is removed from display.

FIG. 5B illustrates a confirmation of a sent message to another user ofa social network, in accordance with an embodiment of the invention. Theillustrated embodiment shows the result of sending a taunting message tothe user Emily, based on selection of the button 506 of FIG. 5A.Following selection of the button 506, the taunting message may havebeen sent without further user input, or sent following an opportunityfor the sending user to enter text (with a subsequent action to causethe taunting message to be sent, such as pressing a “send” button). Asshown with continued reference to FIG. 5B, a confirmation dialogue 520indicates that the sending user has taunted the user Emily.

FIG. 6 illustrates an interface for viewing contents of an inbox of auser, in accordance with an embodiment of the invention. The user'sinbox includes various messages from other users, as well assystem-generated notifications which inform the user about variousaspects of the user's fitness related activity. In the illustratedembodiment, an inbox of a user “Ryan” is shown. The inbox is displayedin response to selection of an option 600, which triggers display of themessages in the user Ryan's inbox.

As shown, various messages/notifications are displayed in a scrollablelist. A message 602 is from a user “Nicki” (ref. 608). The message 602includes a profile picture 604 of the user Nicki. A taunting icon 606indicates that the message 602 is a taunting message. The message 602 isfurther defined by text content 610, which was previously entered by theuser Nicki. At ref. 612, a time is associated with the message 602,indicating when the message was sent/received. In the illustratedembodiment, the message 602 was sent/received 29 seconds ago.

A message 614 is defined from a user “Dave” (ref. 622). A profilepicture 616 of the user Dave is shown, and a generic message icon 618indicates that the message 614 is a regular or generic message (asopposed to a cheering or taunting message). The message 614 is definedby text content 622 provided by the user Dave. And a time indication 624shows that the message 614 was sent/received approximately one minuteago.

A connection request 626 indicates that the user Dave wishes to befriends with the user Ryan on the social network (ref. 630). The request626 includes a social icon 628, and a time indication 632 showing therequest was sent/received approximately two hours ago. Upon selection oropening of the request 626, options can be provided to the user Ryan toaccept or ignore the request. Acceptance of the request will cause theusers Dave and Ryan to be connected on the social network, such as eachuser becomes a member of the other's social graph.

A message 634 is defined from a user “Cameron” (ref. 640). A profilepicture 636 of the user Cameron is displayed. A cheering icon 638indicates that the message 634 is a cheering message. The message 634 isdefined by text content 642 which was entered by the user Cameron.Furthermore, a time indication 644 is shown, indicating that the messagewas sent/received on a prior Sunday.

In addition to messages which are defined and sent by specific users,system-generated notifications can be displayed in the listing ofmessages. For example, a passing notification 646 can be shown,indicating that the user Ryan has been passed by another user withrespect to an activity metric. In other words, another user has attaineda value for the activity metric that is superior to that of the userRyan (value may be greater or less than that of the user Ryan dependingupon the particular activity metric being compared). In the illustratedembodiment, the passing notification 646 includes an icon 648 indicatingthe type of activity metric is a step count. The text portion 650 of thenotification 646 indicates that the user Cameron and two other usershave passed the user Ryan in terms of their step counts (i.e. haveachieved a higher step count than the user Ryan). A time indication 652indicates that this occurred on a prior Saturday.

In one embodiment, passing or being passed with respect to a givenactivity metric may trigger an opportunity for the user to send amessage to another user who has been passed, or who passed, the instantuser. For example, with continued reference to FIG. 6, the notification646 can provide access to an option to send a message to the any of theuser Cameron or the two other users who have passed the user Ryan. Inone embodiment, such an option is presented upon selection orinteraction with the notification 646. In another embodiment, such anoption is presented automatically upon viewing of the notification. Inother embodiments, such an option can be presented automatically onlyupon the first viewing of the notification, only upon a first predefinednumber of viewings of the notification, or until the instant userutilizes the option to send a message.

Another system-generated notification 654 indicates that the user Ryanhas lost five pounds, and congratulates the user on the progress towardsa weight goal (ref. 650). A profile icon 658 is configured to indicatethe loss of five pounds, and an icon 658 is configured to display atrophy.

In the illustrated embodiment, the messages and notifications are listedin reverse chronological order from top to bottom, so that the mostrecent messages or notifications are featured near the top of thelisting. It should be appreciated that in other embodiments, themessages/notifications can be listed in any order so as to prioritizeany given feature which may be associated with themessages/notifications. For example, in one embodiment, the messages maybe organized according to the sending user's name, so that messages froma given user are grouped together. In another embodiment, the messagescan be organized to feature those messages which are unread. In anotherembodiment, the messages can be organized based on predefined groups.For example, if the user is a member of a competitive group for a givenfitness activity, then messages from other members of the competitivegroup may be collated for display. It should be appreciated that theseand other methods of organizing and prioritizing a listing of messagescan be combined in various configurations.

FIG. 7 illustrates a system for sending and receiving messages betweenusers of a social network, in accordance with an embodiment of theinvention. An activity monitoring device 700 is configured to trackactivity of a user, as has been discussed above. An activity datastorage 704 is configured to store activity data which have beendetected or processed by the activity monitoring device 700.Synchronization logic 702 is configured to transmit such activity datato a user device 706, which may occur with varying frequency. The userdevice 706 includes synchronization logic 708 which is configured tomanage receipt of the aforementioned activity data from the activitymonitoring device 700, as well as manage transmission of such activitydata (and data processed by the user device from such activity data) toa remote server 718 (via a network 716), the remote server 718 havingsynchronization logic 720 for handling receipt of such data and storingit to an activity data storage 726.

The user device 706 includes an application 710 which in variousembodiments can be a dedicated application or a browser application. Theapplication 710 is configured to provide access to the user's activitydata, the social network, and provide for messaging functionality. Theapplication 710 may retrieve (e.g. from the social data 728, via thesocial management logic 718) or store locally a friends list 712, whichidentifies friends of the user on the social network. Additionally, amessaging user interface 714 is provided for allowing the user to viewmessages as well as define and send messages to other users.

As alluded to above, the server 718 provides access to a social networkthat is defined by various social data stored to a social data storage728. The social data includes information defining connections or otherrelationships between social network users, and thereby defines thesocial graphs of social network users. Social management logic 722handles requests relating to the social data. For example, theapplication 710 may retrieve and display a news feed of currentactivity/posts from members of the social graph of the user. Theapplication 710 may retrieve the news feed information by requesting itfrom the social management logic 722 of the remote server 718. Inresponse to a given request, the social management logic 722 may querythe social data storage 728 to both identify members of the user'ssocial graph and retrieve posts/notifications/etc. which are related toor posted by the members of the user's social graph. In one embodiment,the social management logic 722 may also query the activity data storage726 to retrieve activity data/metrics of members of the user's socialgraph. The retrieved data is returned to the application 710 for displayin the social news feed at the user device 706.

It will be appreciated that the messaging user interface 714 of theapplication 710 may be triggered or activated from various contextswithin the application 710. In one embodiment, the application 710 maybe configured to allow the user to browse and view information aboutusers in the friends list 712 (e.g. user name, date of joining thesocial network, activity metrics/data, etc.). When viewing informationabout a given friend, options may be provided to allow the user to senda message to the friend. Selection of such options may activate themessaging user interface 714 to permit the user to define and send amessage to the friend. In another embodiment, the application 710 mayenable viewing of a leaderboard for a given activity metric, whereinfrom the leaderboard, the user may access the messaging user interface714 to send messages to the users/friends listed on the leaderboard(e.g. by selecting a given user on the leaderboard). In anotherembodiment, the messaging user interface 714 may be accessed from a viewof a group to which the user belongs, enabling the user to send amessage to another member of the group. It will be appreciated that invarious embodiments, the messaging user interface 714 can be triggeredor activated to permit the user to send a message to another user fromany number of contexts wherein other users are identified via theapplication 710.

The remote server includes messaging logic 724 which is configured tohandle messaging related requests and activities. For example, when arequest is received to retrieve messages from the user's inbox, themessaging logic 724 retrieves the relevant messages from the messagedata storage 730, and returns them to the application 710 for displayvia the messaging UI 714. Furthermore, the messaging logic 730 receivesdata from the application 710 to define a new message to be sent toanother user. The messaging logic 730 stores the new message based onthe received data to the message data storage 730. The messaging logic730 may also be configured to notify users when a new message has beenreceived (e.g. send an alert/notification to the user's device).

With continued reference to FIG. 7, a second user device 732 is shown,including an application 734 (e.g. a browser or dedicated application)configured to provide a messaging UI 736. The messaging UI 736 providesthe same functionality as that described with reference to the messagingUI 714. It will be appreciated that the user may access the messagingfunctionality described herein from any device which may access thenetwork 716 and communicate with the server 718, and which can beconfigured to display the messaging UI. By way of example, in oneembodiment, the user device 706 may be a mobile device such as a smartphone, whereas the user device 732 is another computing device such as apersonal computer or laptop. The user may access their messages, as wellas generate and send messages to other users from either device.

FIG. 8 illustrates a method for sending a message to user of a socialnetwork, in accordance with an embodiment of the invention. At methodoperation 800, a user is authenticated or logged in to the socialnetwork. At method operation 802, one or more friends of the user (i.e.members of the user's social graph) are identified and presented in alisting/directory of friends. Additionally, activity metrics/data foreach of the friends can be presented. At method operation 804, aninteraction with one of the entries in the directory of friends isdetected. At method operation 806, in response to the detectedinteraction, messaging options are presented for enabling the user toselect a type of message to send to the friend with whose entry the userinteracted. At method operation 808, a selection of one of the messagingoptions is received. At method operation 810, a text input interface ispresented. At method operation 812, user-generated text is received viathe text input interface. At method operation 814, the message datadefined by the selected messaging option and the user-generated text istransmitted to a remote server to define a new message sent to theselected friend.

FIG. 9 conceptually illustrates sending a message from a first user to asecond user, in accordance with an embodiment of the invention. In theillustrated embodiment, a user 900 operates an activity monitoringdevice 902 in conjunction with a user device 904. Activity data recordedby the activity monitoring device 902 can be stored to a cloud-baseduser activity data storage 912. Another user 906 (“John”) operates anactivity monitoring device 908 in conjunction with a user device 910.The activity data recorded by the activity monitoring device 908 is alsostored to the user activity data storage 912. The users 900 and 906 aremembers of each other's social graphs, as defined in a social datastorage 914.

From the user device 904, the user 900 accesses a friends list 916 whichincludes names of users who are members of the user's 900 social graph,including the user 906 (“John”), as well as an activity metric (e.g. astep count) associated with each user. In the illustrated embodiment,selection of the entry for the user “John” provides access to variousoptions (ref. 918) for selecting a type of message to generate to theuser “John.” The options may include an option to generate a regularmessage, a cheering message, or a taunting message. Selection of one ofthe options may then provide access to a text entry field 920 to allowthe user 900 to enter text to define the message. In some embodiments,separate fields are provided to enter text for a subject and a body ofthe message. The indicated selection of the type of message and the textinput provided by the user 900 define message data 922. It should beappreciated that the message data 922 may include additional informationsuch as the identity of the sending user (user 900), the identity of thereceiving user (user 906), a time stamp, etc. The message is sent to theuser 906 by storing it in association with the user's 906 inbox/account.The user 906 may view the message by accessing his/her inbox via theuser device 910.

FIG. 10A conceptually illustrates generation of a leaderboard via amessaging procedure, in accordance with an embodiment of the invention.An inbox view 1000 shows messages in an inbox for a user Pete. A newmessage button 1002 is selected to access a message creation interface1004 for creating a new message. The message creation interface 1004includes a recipient field 1006 wherein recipients of the new messagemay be entered (e.g. utilizing an identifier such as a user name,address, etc.). In the illustrated embodiment, the sending user (Pete)has designated the users “Bob,” “John,” “Jane,” and “Ann” to receive thenew message. A subject field 1008 is provided for the sending user(Pete) to enter a subject for the message; and a body field 1010 isprovided for the entry of text to define the body of the message.

Additionally, a leaderboard option (ref. 1012) is provided whereby thesending user may opt to generate a leaderboard for an activity metricthat will be associated with the message (and any thread of messagesgenerated based on the new message). Selection of the leaderboard optionprovides access to a leaderboard definition interface 1014 that isconfigured to allow the sending user to define specifics for theleaderboard. For example, in the illustrated embodiment, the sendinguser may select what activity metric the leaderboard will track (ref.1016), such as steps, floors climbed, distance traveled, active minutes,etc. In the illustrated embodiment, the sending user has selected theleaderboard to track a number of steps. It will be appreciated that morethan one activity metric can be designated for tracking on theleaderboard. The sending user may also determine a duration for whichthe leaderboard will be active, such as until a specific date, for apredefined duration, or indefinitely. In the illustrated embodiment, thesending user has defined the leaderboard to be active for a duration offive days.

The message creation interface 1004 further includes a button 1020 tosend the new message, and a button 1022 to cancel the new message. Afterthe message is sent, the message will appear in the inbox view 1024 ofthe user Bob who is a recipient of the message. By selecting the messagepreview 1026, an entire view of the message (ref. 1028) is accessed. Themessage 1028 includes an option (ref. 1030) to join the leaderboard. Inthe illustrated embodiment, buttons for indicating yes or no areprovided (ref. 1030) whereby the user Bob may indicate whether he wishesto join the leaderboard.

It will be appreciated that those users who respond positively to therequest to join the leaderboard will be members of a competitive groupthat has been formed based on the message sent by the user Pete. Theleaderboard can be displayed in conjunction with viewing of a messagethat is a part of the message thread (that is defined by the firstmessage sent by the user Pete and any subsequent replies, or replies toreplies). Those users that respond positively to the request to join theleaderboard will have their activity metric for which the leaderboard isdefined (e.g. step count) tracked on the leaderboard and made availableto other members of the competitive group, and they will likewise beable to see other members' activity metrics on the leaderboard.

FIG. 10B illustrates a view of a message thread and accompanyingleaderboard, in accordance with the embodiment of FIG. 10A. Shown atleft is a message thread defined by the original message sent by theuser Pete (ref. 1040) and several replies, including messages 1042,1044, and 1046. The associated leaderboard 1048 is shown at right, andincludes the names of the users that have responded positively to therequest to join the leaderboard, and displays the users in a rankedorder from highest step count to lowest.

FIG. 10C conceptually illustrates creation of a competitive group basedon an amount of messaging between users, in accordance with anembodiment of the invention. A messaging system can be configured todetermine a quantity or amount of messaging from a given user to otherusers, and when the quantity exceeds a predefined threshold, present anoption for the given user to define a competitive group to include thegiven user and the other users. In the illustrated embodiment, themessage creation interface 1004 is shown, similar to that shown anddescribed with reference to FIG. 10A. A recipient field 1006, a subjectfield 1008, a body field 1010, a send button 1020, a cancel button 1022,and a save draft button 1060 are provided.

In response to detecting that the sending user has entered the names ofusers in the recipient field 1006 whom the sending user messagesfrequently (or whom the sending user has messaged many times), then anoption to form a group including the recipients is displayed (ref.1062). Upon activation of the option, invitations are sent to the otherusers to join the group (ref. 1064). Based on received responses to theinvitations (ref. 1066), the group is generated (ref. 1068).

It should be appreciated that a user's messaging history may be analyzedin various ways to determine when to provide the option to form a group.For example, in one embodiment, when a user has messaged the sameplurality of users a given number of times that exceeds a predefinedthreshold, then the option may be provided upon the next instance wherethe user creates a message designating the plurality of users asrecipients. In one embodiment, the option to form a group is presentedwhen a user has messaged the same users with a frequency or rate thatexceeds a predefined threshold frequency or rate.

Additionally, the group that is formed may be a competitive group forwhich membership provides access to values of an activity metric foreach of the members of the group. A leaderboard may be accessed by themembers of the competitive group, and may display a ranked ordering ofthe members of the group based on their respective activity metricvalues.

FIG. 11 illustrates a system for providing leaderboard functionality inconjunction with messaging, in accordance with an embodiment of theinvention. An activity monitoring device 1100 interfaces with a userdevice 1102. The user device 1102 is configured to execute anapplication 1104 including a synchronization module 1106 for syncingdata from the activity monitoring device 1100 to a cloud-based useractivity data storage 1124. A messaging UI 1108 provides for the viewingof messages from an inbox of the user, as well as generation of newmessages that are sent to other users. A leaderboard module 1110 isprovided for enabling the user to define parameters for a leaderboardthat is to be associated with a given message to be sent, and alsoprovides for retrieval and viewing of a leaderboard that is associatedwith a given message thread.

The messaging server 1112 defines an API 1114 for accessing data such asmessage data defined in a message data storage 1122, and user activitydata defined in the user activity data 1124. Message creation logic 1116is provided for managing the generation of new messages. Messageretrieval logic 1118 is provided for responding to requests to retrievemessages for a given user. Leaderboard logic 1120 is configured togenerate a leaderboard that is to be associated with a given messagethread. For example, the leaderboard logic 1120 can be configured togenerate a leaderboard based on responses to requests to join a givenleaderboard which have been sent to one or more users, as previouslydescribed.

The server 1112 may further define a messaging analyzer 1126 which isconfigured to analyze a user's messaging history to determine thequantity of messaging occurring between a given user and other users.The quantity of messaging can be defined by a number of messages sent, afrequency of messaging, or other metrics which quantify the messagingbetween the given user and other users.

Group logic 1128 is provided for handling group generation andmanagement, including providing an option to generate a group when agiven user's messaging to specific users exceeds a predefined threshold.The group logic 1128 may send invitations to join a group, and generatethe group based on the received responses to the invitations.

In some embodiments, methods and systems are provided for identifyinginteresting, unusual, or otherwise significant activity by a user of anactivity tracking device, and delivering messages that are related tothe identified activity. Broadly speaking, a user's activitymetrics/data can be analyzed to identify characteristic activity levelsor patterns, and deviations from the characteristic activity levels orpatterns can be identified. In response to the identification of suchdeviations, messages can be generated and sent to the user.

FIG. 12A conceptually illustrates determination of characteristicactivity levels for a given time period, and the application thereof toidentify unusual activity, in accordance with an embodiment of theinvention. Each of the graphs 1200, 1204, and 1208 illustrates anactivity metric versus time for a given user. In the graph 1200, theactivity metric over time is represented by the curve 1202; in the graph1204, the activity metric over time is represented by the curve 1206;and in the graph 1208, the activity metric over time is represented bythe curve 1210. As shown, time periods P₁, P₂, and P₃ are identified inthe graphs 1200, 1204, and 1208, respectively.

The time periods P₁, P₂, and P₃ are analogous, similar, or recurrenttime periods that have a same or similar time frame. That is, the timeperiods have a common temporal characteristic. By way of example,without limitation, each of the time periods may be the same or similarin any of the following respects: time of day (e.g. mornings,afternoons, evenings, etc.), timespan as defined by start time of dayand end time of day (e.g. 6 am to 9 am), duration (e.g. hours, days,weeks, months, years), day(s) of the week (e.g. Mondays, weekdays,weekends, etc.), day(s) of the month (e.g. 1^(st) day of the month),week(s) of the month, month(s) of the year, etc.

It will be appreciated that in addition to time periods P₁, P₂, and P₃,there may be additional time periods having the same or similar timeframe. The activity metric values for each of these time periods can beprocessed to determine a characteristic activity level for the recurrenttime period, which is indicated by the curve 1214 shown at graph 1212.The characteristic activity level defines characteristic, expected,predicted, normal or otherwise typical activity metric values or levelsfor the time period. In the illustrated embodiment, the characteristicactivity level for the generic period of time P₀ is represented by thecurve 1214, and more specifically, has been determined to have a value26. It should be appreciated that the units supplied with reference tothe activity metric are arbitrary and provided for purposes ofillustration.

In one embodiment, the characteristic activity level is defined by anaverage or mean of the activity metric values of the periods of time. Insome embodiments, this can be conceptualized as the sum of the areasunder the curves 1202, 1206, 1210, etc. during the respective periods oftime P1, P2, P3, etc. and divided by the number of the time periodsconsidered and the duration of a given generic time period. In otherembodiments, the characteristic activity level is defined by a median ormode of the activity metric values of the periods of time. In otherembodiments, any known method for determining characteristic activitylevels may be applied that defines characteristic, expected or typicalactivity metric value(s) for the time period.

In some implementations, the characteristic activity metric level isdefined by a singular overall value for the time period (as in theillustrated embodiment). However, in other implementations,characteristic activity metric levels can be defined with greatergranularity ranging from the entirety of the time period (resulting inthe aforementioned singular overall value) to any temporal subdivisionof the period of time, to being continuously defined. In someimplementations, a minimum temporal subdivision for the period of timemay be defined based on a minimum time duration for which an activitymetric value can be determined. In some embodiments, the characteristicactivity levels can be determined by averaging or characterizing theactivity metric curves together to define an average or characteristiccurve.

With continued reference to FIG. 12A, at a graph 1216, an activitymetric curve 1218 during a recent similar period of time P_(n) is shown.The user's activity as defined by the curve 1218 is compared against thecharacteristic activity level to identify unusual activity. In someembodiments, when the activity metric value exceeds the characteristicactivity level by a threshold amount, then unusual activity isidentified, and a message that includes descriptive information aboutsuch an event can be generated and sent to a user's account. In theillustrated embodiment, a threshold value of 10 units above thecharacteristic activity level value of 26 is shown. That is, when theactivity metric values exceed 36 units, then an unusual activity isdetected, and a message can be generated and sent. In the illustratedembodiment, the activity metric exceeds 36 units, and so a messageidentifying this event can be generated and sent to the user.

FIGS. 12B and 12C illustrate activity levels for a user on two differentdays, in accordance with an embodiment of the invention. In FIG. 12A, acurve 1222 defines activity metric value versus time for a first day. InFIG. 12B, a curve 1226 defines activity metric value versus time for alater second day. The activity metric levels for each of the first dayand the second day can be analyzed and compared with each other.

It will be appreciated that the first day and the second day can be anytwo days for which activity data of the user are recorded (e.g. two daysin succession, two of the same day of the week (e.g. two Saturdays),etc.). The activity metrics of the two days can be compared to identifyinteresting differences or changes from the first day to the second day.For example, in the illustrated embodiment, on the second day, as shownat reference 1230, the user's activity level in the morning is greatlyincreased as compared to that of the first day. Furthermore, the totalactivity amount for the second day is greater than that of the first day(conceptualized as the area 1228 under the curve 1226 for the second dayversus the area 1224 under the curve 1222 for the first day.

FIG. 12D illustrates a graph showing characteristic activity levels fora week, in accordance with an embodiment of the invention. A curve 1232indicates characteristic activity levels for a user over time, for agiven activity metric. As can be seen, the activity levels generallyfollow a pattern of periods of activity during each day, separated byperiods of minimal activity, when the user is asleep. During sleep,there is a minimal activity level indicated in the graph by the baseline1234.

Deviations from the characteristic activity levels on a given day can bedetected. For example, as indicated at reference 1236, the user mayexhibit a level of activity on a Monday that is substantially greaterthan the characteristic activity level for that time. Upon detection ofsuch activity, a message identifying and/or describing the deviationfrom normal activity levels can be sent to the user. As another exampleshown in the illustrated graph, the user's activity level on a Thursdaymay typically include elevated activity levels on Thursday nights (e.g.user plays basketball on Thursday nights). However, on a given Thursday,the elevated activity level may be even greater than normal, asindicated at reference 1238. In response to detection of thisoccurrence, a message can be generated and sent to the user, identifyingand describing the activity.

The threshold for detection of unusual activity can be contextdependent. For example, the threshold for detection of unusual activityfor the time period at reference 1236, when activity levels are normallynot especially elevated, can be greater than the threshold for detectionfor the time period at reference 1238, when it is expected that activitylevels will already be elevated, and hence even higher elevated activitylevels may be considered significant at a lower threshold relative tothe already elevated activity levels.

Messages which are generated in response to detection of interesting orunusual activity can be customized to include relevant activitymetrics/data that is descriptive of the activity (e.g. “You improved onyesterday's stepcount by 1000 steps,” “You're only 500 steps frombeating last week's total”, etc.). Generated messages which aredescriptive of the unusual activity are sent to a user accountassociated with the user. Throughout the present disclosure, messagesare described as being sent to users for ease of description, though itwill be understood that this includes sending the messages to useraccounts that are associated with the users. Messages can be sent viaany of a variety of messaging technologies including, but not limitedto, private messages, e-mail, push notifications, etc. Additionally,messages may be sent to additional users who are members of the primaryuser's social graph.

It will be appreciated that detection of interesting or unusual activitymay be determined according to any of various methods and techniques.Broadly speaking, activity data for first and second periods of time,which have a similar time frame, can be analyzed to determinecharacteristic activity levels for the periods of time. These may becompared to determine deviations between the two periods of time, and soidentify interesting or unusual activity by a user. For example, in oneembodiment, a historic mean level of activity is determined, anddeviations from the historic mean can be detected. In other embodiments,other statistical measures of characteristic activity levels can bedetermined (e.g. median, mode, etc.) and deviations therefrom can bedetected to identify interesting or unusual activity. It will beappreciated that in some embodiments, such deviations are detected forcurrent and/or recent time periods which are subsequent to the timeperiod from which the historic mean is calculated, so as to providefeedback to the user regarding their current/recent activity. Adeviation can be defined in various ways, such as a difference exceedinga predefined amount, a predefined threshold, a predefined fractionalamount (e.g. difference exceeding a specified percentage difference), apredefined number of standard deviations, etc. In still otherembodiments, any known method for identifying a statisticallysignificant difference can be applied to activity data of a user toidentify unusual activity.

In accordance with additional embodiments, group events can be definedin which two or more users participate based on their activity data.Examples of group events include challenges or races, in which userscompete against one another to achieve a highest or otherwise bestactivity amount or other activity related outcome, missions in whichusers each have individual goals that are pursued together in thecontext of the group, and group goals where users collectively pursue agoal.

FIG. 13A is a flow diagram conceptually illustrating messaging generatedfor a group event, in accordance with an embodiment of the invention. Inthe illustrated embodiment, a user A invites user B and user C to thegroup event, and user C in turn invites user D and user E to the groupevent. Upon joining the group event activity data 1300 for the users isanalyzed and tracked for purposes of the group event, as indicated atreference 1302. Based on the analysis and tracking, the users can beranked 1304, and significant events can be detected 1306. Based on theranking and significant events, messages can be generated 1308, andpropagated as notifications 1312 to some or all of the users, as well asto a message feed 1310 defined for the group event.

FIG. 13B illustrates a graph of activity metric versus time for a groupevent, in accordance with an embodiment of the invention. Each of thecurves 1314, 1316, 1318, and 1320 indicates activity metricvalues/levels for users A, B, C, and D, respectively. During the courseof the group event, each of the users is ranked based on their activitymetric values/levels. Interesting activity occurring during the groupevent that indicates a changes in relationship between two or more ofthe users can be identified, and in response, messages can be generatedand sent to user accounts that are associated with the users. Forexample, at reference 1322, the activity level for user A is about tosurpass that of user B. Upon detection of such an event, a message canbe generated indicating as such (e.g. “User A is gaining on User B andabout to pass!”). Furthermore, the message may be customized based onthe intended recipient. For example, the message to user A may be “Keepit up! You're about to pass User B!” Whereas, the message to user B maybe “Watch out! User A is on your heels and gaining fast!”

When a passing event is detected in which the activity value/level ofone user surpasses that of another, messages can also be generated andsent. With continued reference to FIG. 13B, at reference 1324, theactivity level for user A passes that of user B. Upon detection of thepassing event, a message can be generated identifying and/or describingthe passing event. Again, the message can be customized based on therecipient. For example, since the passing event affects the first placeranking in the group event, this may something of interest to allparticipants, and therefore messages may be generated and sent to allthe participants. Again, the messages may be customized based on therecipient. For example, the message to user A may be, “Congrats! Youjust passed user B to take first place!” Whereas the message to user Bmay be, “Uhoh! User A just stole first place from you!” And the messagessent to the remaining participants may be, “User A takes the lead!”

At reference 1326, the activity levels for users C and D are close toeach other (differ by less than a predefined amount) for a length oftime, and this may be identified as an interesting event. This will beinteresting for user C and D, but may be of less interest to theremaining participants, as users C and D are not in the top rankings.Therefore, messages are generated and sent to users C and D thatidentify and describe this occurrence, but messages are not sent to theother participants. By way of example, the message to user C may be,“You and User D are running neck and neck!” whereas the message to userD may be, “You and User C are running neck and neck!”

At reference 1328, the activity level of user C surpasses that of user Dby a large amount (greater than a threshold amount). Therefore, upondetection of this passing event, messages can be generated and sent tousers C and D. For example, the message to user C may be, “You rocketedpast User D into third place!” whereas the message to user D may be,“User D rocketed past you into third place!”

It will be appreciated that there may be any number of unusual orinteresting events or changes in relationship between activity levels ofusers, and that such may be detected, and in response, messages can begenerated and sent to some or all participating users. Messages can becustomized to include activity metric data that is related to ordescriptive of the significant event. Several examples are describedherein for purposes of illustration, without limitation.

For example, when someone takes first place with a significant lead(e.g. a user “Joe” takes lead from a user “Sally”), messages to thirdparties may be “Joe rocketed past Sally into first place,” “Joe zoomedinto first,” etc. When the recipient is the actor (e.g. “Joe”) themessage may be “You rocketed past Sally into first place,” “You zoomedinto 1^(st),” etc. When the recipient is the subject (e.g. “Sally”), themessage may be “Joe rocketed past you into first place,” etc. In thetable below, several examples of message templates are provided for thesituation when someone takes first place with a significant lead (e.g.activity metric/level exceeds the second place person by at least athreshold amount). The message templates are tailored to the recipientdepending upon whether the recipient is a third party (i.e. not involvedin gaining or losing first place), an actor (i.e. person who takes firstplace), or the subject (i.e. person who previously held first place butnow lost it). The message templates can include fillable fields forinsertion of the appropriate names and relevant activity metric data(indicated in braces in the table below). By way of example, therelevant activity metric data may be a total cumulative amount of theactivity metric for the first place person (according to which theranking is determined), an amount of the activity metric acquired by theperson to take first place, an amount by which the first place person isin the lead, etc.

Third Parties Recipient is the Actor Recipient is the Subject {Joe}rocketed past {Sally} into You rocketed past {Sally} into {Joe} rocketedpast you into first place first place first place {Joe} snatched thetitle from You snatched the title from {Joe} snatched your title {Sally}{Sally} {Joe} took the crown from You took the crown from {Joe} tookyour crown {Sally} {Sally} {Abby} knocked {Brad} out of You knocked{Brad} out of 1st {Abby} knocked you out of 1st 1st place place place{Abby} zoomed into 1st You zoomed into 1st {Abby} flew past {Brad} into1st You flew past {Brad} into 1st {Abby} flew past you into 1st placeplace place {ABBY} IS IN FRONT!!! YOU'RE IN FRONT!!! With {23,000}steps, {Joe} just With {23,000} steps, you just took a whale of a leadtook a whale of a lead Watch out Tony Danza, looks Watch out Tony Danza,looks like {Joe} is the boss like you're the boss {Joe} trounced thecompetition You trounced the competition {Joe} gunned it into 1st placeYou gunned it into 1st place {Joe} stole the lead You stole the lead{Joe} shot straight past the pack You shot straight past the pack into1st place into 1st place {Joe} took the lead . . . and boom You took thelead . . . and boom goes the dynamite goes the dynamite Some serioussteppage has Some serious steppage has occurred. {Joe}'s snagged theoccurred. You've snagged the lead lead

For example, when someone (e.g. user “Joe”) takes first place with amodest lead, messages to third parties may be “Joe squeaked into1^(st),” etc. When the recipient is the actor, the message may be “Yousqueaked into 1^(st),” etc. When the recipient is the subject, themessage may be “Joe claimed your lead,” etc. In the table below, severalexamples of message templates are provided for the situation whensomeone takes first place with a modest lead (e.g. activity metric/levelexceeds the second place person by less than a threshold amount). Themessage templates are tailored to the recipient depending upon whetherthe recipient is a third party (i.e. not involved in gaining or losingfirst place), an actor (i.e. person who takes first place), or thesubject (i.e. person who previously held first place but now lost it).The message templates can include fillable fields for insertion of theappropriate names and relevant activity metric data (indicated in bracesin the table below). By way of example, the relevant activity metricdata may be a total cumulative amount of the activity metric for thefirst place person (according to which the ranking is determined), anamount of the activity metric acquired by the person to take firstplace, an amount by which the first place person is in the lead, etc.

Third Parties Recipient is the Actor Recipient is the Subject {Abby}cruised into first place You cruised into first place {Brad} squeakedinto 1st You squeaked into 1st {Joe} claimed the lead from You claimedthe lead from {Joe} claimed your lead {Sally} {Sally} {Brad} justdemoted {Abby} to You just demoted {Abby} to 2nd {Brad} just demoted youto 2nd place place 2nd place {Abby} took 1st place You took 1st place{Abby} took the lead You took the lead {Brad} was in the lead . . . butnot You were in the lead . . . but not anymore anymore {Abby} is out infront You're out in front {Abby}'s the new leader You're the new leader{Abby} is the new frontrunner You are the new frontrunner {Brad} is thenew leader with You are the new leader with {23,000 steps} {23,000steps} Leadership change: {Brad}'s in Leadership change: you're infront! front! Look out: {Abby}'s up top Look out: you're up top

For example, when someone takes Nth place with a significant lead (e.g.user “Brad” overtakes user “Abby” by 3000 steps), messages to thirdparties could be “Brad's in front of Abby by 3000 steps,” etc. When therecipient is the actor (e.g. Brad), the message could be, “You're infront of Abby by 3000 steps,” etc. When the recipient is the subject,the message could be “Brad's in front of you by 3000 steps,” etc. In thetable below, several examples of message templates are provided for thesituation when someone takes Nth place with a significant lead (e.g.activity metric/level exceeds the next (N+1) place person by at least athreshold amount). The message templates are tailored to the recipientdepending upon whether the recipient is a third party (i.e. not involvedin gaining or losing Nth place), an actor (i.e. person who takes Nthplace), or the subject (i.e. person who previously held Nth place butnow lost it). The message templates can include fillable fields forinsertion of the appropriate names and relevant activity metric data(indicated in braces in the table below). By way of example, therelevant activity metric data may be a total cumulative amount of theactivity metric for the Nth place person (according to which the rankingis determined), an amount of the activity metric acquired by the personto take Nth place, an amount by which the Nth place person is ahead ofthe next (N+1) place person, etc.

Third Parties Recipient is the Actor Recipient is the Subject {Brad}'sin front of {Abby} by You're in front of {Abby} by {Brad}'s in front ofyou by {3,000} steps {3,000} steps {3,000} steps {Brad} just took a{3,000} step You just took a {3,000} step lead {Brad} just took a{3,000} step lead over {Abby} over {Abby} lead over you {Brad}'s eating{Abby}'s dust {Brad}'s eating your dust You're eating {Abby}'s dust{Joe} leapfrogged {Sally} You leapfrogged {Sally} {Joe} leapfrogged you{Abby} rushed past {Brad} You rushed past {Brad} {Abby} rushed past you{Joe} took a crushing lead over You took a crushing lead over {Joe} tooka crushing lead over {Sally} {Sally} you {Brad} flew past {Abby} Youflew past {Abby} {Brad} flew past you {Brad} overtook {Abby} by Youovertook {Abby} by {3,000} {Brad} overtook you by {3,000} {3,000} stepssteps steps {Abby}'s crushing {Brad} right You're crushing {Brad} right{Abby}'s crushing you right now: now: now: {3,000} steps ahead {3,000}steps ahead {3,000} steps ahead {Abby} powered past {Brad} by Youpowered past {Brad} by {Abby} powered past you by {3,000} steps {3,000}steps {3,000} steps {Brad} zoomed past {Abby} You zoomed past {Abby}{Brad} zoomed past you {Abby} left {Brad} in the dust You left {Brad} inthe dust {Abby} left you in the dust {Brad}'s leading {Abby} by You'releading {Abby} by {Brad}'s leading you by {3,000} {3,000} {3,000} stepsnow steps now steps now {Joe} just rocked {Sally}'s world You justrocked {Sally}'s world {Joe} just rocked your world {Joe} crushed{Sally}'s step total You crushed {Sally}'s step total {Joe} crushed yourstep total {Joe} just dominated {Sally}'s You just dominated {Sally}'s{Joe} just dominated your lead lead lead {Joe} delivered a blow to{Sally} You delivered a blow to {Sally} {Joe} delivered you a blow {Joe}beat {Sally}'s total You beat {Sally}'s total {Joe} beat your total{Joe} swept {Sally}'s total You swept {Sally}'s total {Joe} swept yourtotal {Joe} just showed {Sally} what's You just showed {Sally} what's{Joe} just showed you what's up up up {2,000} more steps shows {Joe}{2,000} more steps shows you're {2,000} more steps shows {Joe} isplaying hardball with {Sally} playing hardball with {Sally} is playinghardball with you

In the table below, several examples of message templates are providedfor the situation when someone takes Nth place with a modest lead (e.g.activity metric/level exceeds the next (N+1) place person by less than athreshold amount). The message templates are tailored to the recipientdepending upon whether the recipient is a third party (i.e. not involvedin gaining or losing Nth place), an actor (i.e. person who takes Nthplace), or the subject (i.e. person who previously held Nth place butnow lost it). The message templates can include fillable fields forinsertion of the appropriate names and relevant activity metric data(indicated in braces in the table below). By way of example, therelevant activity metric data may be a total cumulative amount of theactivity metric for the Nth place person (according to which the rankingis determined), an amount of the activity metric acquired by the personto take Nth place, an amount by which the Nth place person is ahead ofthe next (N+1) place person, etc.

Third Parties Recipient is the Actor Recipient is the Subject Bad newsfor {Brad}. {Abby} Bad news for {Brad}. You just Bad news. {Abby} justpulled just pulled ahead pulled ahead ahead of you {Joe} surpassed{Sally} You surpassed {Sally} {Joe} surpassed you {Joe} outstepped{Sally} You outstepped {Sally} {Joe} outstepped you {Joe} overtook{Sally} You overtook {Sally} {Joe} overtook you {Joe} bumped {Sally} Youbumped {Sally} {Joe} bumped you Move over {Sally}, {Joe}'s Move over{Sally}, Move over {yourName}, {Joe}'s making a play {yourName}'s makinga play making a play {Brad}'s moving up in the You're moving up in theworld world {Abby} passed {Brad} You passed {Brad} {Abby} passed you{Abby} tiptoed past {Brad} You tiptoed past {Brad} {Abby} tiptoed pastyou {Joe} snuck past {Sally} You snuck past {Sally} {Joe} snuck past you{Joe} slid past {Sally}'s step You slid past {Sally}'s step count {Joe}slid past your step count count {Joe} stepped up to the bar that Youstepped up to the bar that {Joe} stepped up to the bar that {Sally}'sbeen setting {Sally}'s been setting you've been setting

In the table below, several examples of message templates are providedfor the situation when two users have very close activity metrics (e.g.activity metric/level of Nth place person and next (N+1) place person isless than a threshold amount). The message templates are tailored to therecipient depending upon whether the recipient is a third party (i.e.not involved in gaining or losing Nth place) or an actor (i.e. personwho holds Nth place or the next (N+1) place. The message templates caninclude fillable fields for insertion of the appropriate names andactivity metric data (indicated in braces in the table below).

Third Parties Recipient is an Actor {Joe} and {Sally} are on eachother's heels You and {Sally} are on each other's heels {Brad} and{Abby} are neck-and-neck You and {Abby} are neck-and-neck {Abby} and{Brad} are in close competition You and {Brad} are in close competition{Brad} and {Abby} are elbow to elbow You and {Abby} are elbow to elbow{Abby} and {Brad} are in tight formation You and {Brad} are in tightformation {Brad} and {Abby} are only a few steps apart You and {Abby}are only a few steps apart {Abby} and {Brad} are all tied up You and{Brad} are all tied up {Brad} and {Abby} are too close for comfort Youand {Abby} are too close for comfort Between {Joe} and {Sally} it's tooclose to call Between you and {Sally} it's too close to call {Joe} and{Sally} are in serious competition You and {Sally} are in seriouscompetition {Joe} and {Sally} are in a deadlock You and {Sally} are in adeadlock It's an even match between {Joe} and {Sally} It's an even matchbetween you and {Sally} The race is ON between {Joe} and {Sally} Therace is ON between you and {Sally} It's gonna be a close call between{Joe} and It's gonna be a close call between you and {Sally} {Sally}{Joe} and {Sally} are lookin' Even Steven You and {Sally} are lookin'Even Steven

For example, when the activity level of an individual user isapproaching that of another user, then a private notification may beprovided to the individual user (e.g. “You're only 500 steps behindAbby”), but not to other users. Examples of message templates for such ascenario are listed in the table below.

Get ready to pass {Brad} You're only {500} steps behind {Abby} Time fora walk! Only {500} steps before you overtake {Brad} Ready to rock? Get{500} more steps to pass {Abby}! You're only {500} steps behind Joe!Start practicing your victory dance

In a related example, a user that is about to be passed may receive aprivate notification (e.g. “Brad is only 500 steps behind you”).Examples of message templates for such a scenario are listed in thetable below.

{Abby}'s on your tail {Brad}'s coming to get you {Abby}'s only {500}steps behind you {Brad}'s catching up to you {Abby}'s sneaking up on you

In another example, a private notification may be sent in response todetection of a user being close to taking first place (or any otherplace) (e.g. “You're 500 steps from taking the lead today”). Examples ofmessage templates for such a scenario are listed in the table below.

{500} more steps and you'll be blazing a trail to the winner's circleYou're making it rain! Storm your way to 1st place by taking {500} moresteps You're {500} steps from taking the lead today Crush {500} steps tocapture 1st place {500} steps to take the lead! The ball's in your courtTired of second place? Take {500} more for the lead! {500} more steps tojockey for first!

Further, personal achievements may be detected in the context of thegroup event, and related messages can be generated and sent. Examples ofpersonal achievements include: someone making a significant change inactivity level (but no change in position), someone reaching 100% oftheir goal today/yesterday, someone improving day over day, someonehaving a multi-day goal streak, etc.

In the table below, examples of message templates are provided for thescenario where someone made a significant change in their activitymetric (e.g. acquiring an amount greater than a threshold amount), butno change in position.

Third Party Recipient is the Actor Woot! {Sally} locked in {1,500} stepsWoot! You locked in {1,500} steps Chalk up {1,500} more for {Abby} Youchalked up {1,500} more {Brad} added another {1,500} steps You addedanother {1,500} steps {Abby}'s on the move! +{1,500} steps You're on themove! +{1,500} steps {Brad} added {1,500} steps for a total of {4,567}You added {1,500} steps for a total of {4,567} {Brad}'s stepping up with{1,500} more on the You're stepping up with {1,500} more on the boardboard Whoa! {Joe} came out of left field with {1,500} Whoa! You came outof left field with {1,500} more steps more steps {Joe} logged a whopping{1,500} steps You logged a whopping {1,500} steps {1,500} steps? {Joe}just threw it down! {1,500} steps? You just threw it down! Jolly goodwork to {Sally} for those {1,500} steps Jolly good work for those{1,500} steps Sweet mother of pearl! {Sally} added {1,500} Sweet motherof pearl! You added {1,500} more more steps! steps! {1,500} steps,{Joe}'s off and running! {1,500} steps, you're off and running!

In the table below, examples of message templates are provided for thescenario where someone reached 100% of their goal today.

Third Party Recipient is the Actor {Joe} crushed it! That step goaldidn't even see it You crushed it! That step goal didn't even see itcoming coming {Joe} did it! Step goal met You did it! Step goal met{Brad}'s on point. {10,000} steps for the day You're on point. {10,000}steps for the day {Abby} just hit {10,000} steps. Goal complete! Youjust hit {10,000} steps. Goal complete! Game, Step, Match! {Joe} beattoday's step goal! Game, Step, Match! You beat today's step goal! Cuethe fireworks, {Joe}'s rocking the step goal Cue the fireworks, you'rerocking the step goal {10,000} steps for {Brad} today. KABOOM! {10,000}steps for you today. KABOOM! {Abby}'s step goal is toast That step goalof yours is toast Goal complete. Three cheers for {Joe}! Your goal iscomplete. Three cheers! That step goal was no match for {Joe}! That stepgoal was no match for you!

In the table below, examples of message templates are provided for thescenario where someone reached 100% of their goal yesterday.

Third Party You're the Actor {Joe} crushed it yesterday! That Youcrushed it yesterday! That step step goal didn't even see it coming goaldidn't even see it coming {Brad}'s was on point yesterday. You were onpoint yesterday. {10,000} steps for the day {10,000} steps for the day{Abby} hit {10,000} steps You hit {10,000} steps yesterday. yesterday.Goal complete! Goal complete! {10,000} steps for {Brad} {10,000} stepsfor you yesterday. yesterday. WAHOO! WAHOO! That step goal yesterday wasno That step goal yesterday was no match for {Joe}! match for you!

In the table below, examples of message templates are provided for thescenario where somebody improved day over day.

Third Party You're the Actor {subject} really stepped up You reallystepped up yesterday! yesterday! {value}% {value}% more more steps thanthe day before steps than the day before A {value}% improvement from Youmade a {value}% improvement $subject$ yesterday! yesterday! Props to{subject} for the Props for the {value}% boost {value}% boost yesterdayyesterday {subject} pumped up the steps You pumped up the steps by{value}% by {value}% yesterday yesterday {subject}'s step count wentYour step count went up {value}% up {value}% day-over-day day-over-day

In the table below, examples of message templates are provided for thescenario where somebody has a multi-day goal streak.

Third Party You're the Actor {subject} hit {goal} steps for You hit{goal} steps for {value} days in a row! {value} days in a row! {value}days in a row getting {value} days in a row getting {goal} steps. Welldone, {subject} {goal} steps. Well done! That's a {value} day That's a{value} day streak for {subject} streak for you How many days in a rowcan How many days in a row can {subject} get {goal} you get {goal}steps? {value} steps? {value} Can {subject} make it a Can you make it a{value + 1} goal streak {value + 1} goal streak today? today?

Though various examples of message templates have been provided herein,it should be appreciated that such are provided by way of example, andnot by way of limitation.

It will be appreciated that for a given detected event, notificationsmay be sent to (a) an individual user, (b) to selected ones (some) ofthe users, or (c) to all of the participating users, depending uponvarious factors such as the characteristics of or type of event that isdetected, the identities of the users that are involved in or affectedby the event, the current activity state of a given user, a calendar ofa user, a location of a user, time of day, etc.

For example, in some implementations, all participating users receivenotifications about changes in the first place ranking; whereasnotifications about other rank changes (not affecting first place) aresent to only those users who are involved in the rank change (e.g. theusers whose rankings have changed). In this manner, notifications arelimited so that users do not receive too many notifications. It shouldbe appreciated that though rank changes have generally been describedwith reference to two users (one user passing another), there may besituations where rank changes affect more than two users (e.g. a userpasses two or more users).

In some implementations, when a passing event is detected which affectsa ranking that is equal to or above a threshold ranking (e.g. change infirst three places), then notification messages are sent to all theparticipating users in the group event. Whereas if a passing event isdetected which affects a ranking below the threshold ranking (e.g.fourth place and below), then notification messages are not sent to allthe participating users, but are sent to the users whose rankings havebeen affected.

FIG. 13C illustrates an interface for displaying data pertaining to agroup event, in accordance with an embodiment of the invention. In theillustrated embodiment, a one week challenge/race to determine who canachieve the highest stepcount is shown. A time remaining field 1330 isprovided to display the amount of time remaining before the challenge iscomplete. A leaderboard 1332 lists the participating users and theirassociated stepcounts in a ranked order from highest to lowest. Amessaging feed 1334 displays messages which have been generated for thegroup event. Messages may be generated automatically by the system upondetection of interesting activity as described herein. It will beappreciated that the messages appearing in the feed may be customizedbased on the user that is currently viewing the feed, so as to becontextually relevant to the current user, as described elsewhereherein. Furthermore, though examples of messages relating to significantactivity between two users have been described, the messages can relateto any of the types of interesting/unusual activity described elsewhereherein.

Messages may also be posted by users to the messaging feed. Indeed, themessaging stemming from the automated detection of interesting activityoccurring during the group event may encourage the participant users tointeract more and post additional messages to the group messaging feed.

As has been noted, messages may be sent to one, some or all of theparticipant users. A message may appear in the messaging feed 1334,though a given user may or may not have received a notificationcontaining the message. For example, in the implementation describedabove wherein notifications regarding changes in rank other than firstplace are sent only to those users involved, appropriate messages forthe change in rank may appear in the message feed provided to otherusers, notwithstanding that they did not receive a notification. In thismanner, the other users have access to the complete messaging activityhistory when accessing the message feed, but receive notificationsselectively so as not to be overwhelmed with excessive notifications.

Additionally, users may cheer, taunt, and otherwise respond to specificmessages.

FIG. 13D illustrates a system for providing notifications to a userdevice, in accordance with an embodiment of the invention. An activitytracking device 1342 is associated with a user 1340. Activity dataprocessing logic 1346 processes data from the activity tracking device1342 for storage to an activity data storage 1348. Analysis logic 1352is configured to analyze activity data for the user 1340, to identifyinteresting or unusual activity. The analysis logic 1352 may employvarious analysis templates 1354 to identify the interesting or unusualactivity. In response to detection of the unusual activity, messaginglogic 1356 is invoked to generate a message for sending to the user. Themessaging logic 1356 may be configured to select an appropriate messagetemplate from message templates 1358, based on the specific nature ofthe unusual activity, and populate the selected message template withcustomized text, including relevant activity metric data that isdescriptive of the unusual activity.

The generated message can be sent via a notification server 1360, to auser device 1344 that is associated to the user 1340. Upon receipt, themessage is surfaced as a notification on the user device 1344.

In another implementation, the message may be sent to and surfaced onthe activity tracking device 1342.

For a group event, there may be additional users, with additionallyassociated activity tracking devices and user devices. Group managementlogic 1350 is configured to manage the formation and maintenance of agroup event. Group management logic 1350 may invoke analysis logic 1352to identify interesting activity occurring during the group event, andmessaging logic 1356 to generate messages which are descriptive of theinteresting activity.

In other implementations, notifications and/or messages may be processedand sent to users based other measurable or quantifiable data. Forinstance, instead of just using activity metrics to determinedifferences, changes, or relationships among one or more users, othertypes of data can include a user's weight (e.g., weight loss, weightgain, weight goals, weight loss competitions, weight loss challenges,etc.), a user's food intake (e.g., number of calories consumed, calorieintake per day or period of time, types of foods eaten, meals logged,meals cooked, meals shared, recipes shared, food data shared, etc.),sleep data (e.g., hours slept, number of times moved during a period oftime, number of wakeups, activity during sleep periods, restful sleepperiods, challenges regarding sleep metrics, etc.). It should beappreciated that these are just some examples of data that can beshared, used or consumed to enable smart notifications or messages tousers or to groups of users.

Such data may be detected by, obtained or derived from sources otherthan the aforementioned activity tracking device, such as by user entryand/or from other types of devices. For example, in implementationswherein users' weights are tracked, weight information may be obtainedthrough user entry (e.g. via an app on a user's mobile device, via a webinterface, any other computing device), or from a scale thatcommunicates weight information (e.g. the ARIA™ WIFI SMART SCALE sold byFitbit Inc.). Notifications may also be surfaced on the scale. In someembodiments, notifications are displayed on the scale at the time that auser activates or otherwise uses the scale.

FIG. 14 illustrates an example where various types of activities ofusers 1400A-1400I can be captured by activity tracking devices 100, inaccordance with one embodiment of the present invention. As shown, thevarious types of activities can generate different types of data thatcan be captured by the activity tracking device 100. The data, which canbe represented as motion data (or processed motion data) can betransferred 1420 to a network 160 for processing and saving by a server,as described above. In one embodiment, the activity tracking device 100can communicate to a device using a wireless connection, and the deviceis capable of communicating and synchronizing the captured data with anapplication running on the server. In one embodiment, an applicationrunning on a local device, such as a smart phone or tablet or smartwatch can capture or receive data from the activity tracking device 100and represent the tracked motion data in a number of metrics.

In one embodiment, the device collects one or more types ofphysiological and/or environmental data from embedded sensors and/orexternal devices and communicates or relays such metric information toother devices, including devices capable of serving asInternet-accessible data sources, thus permitting the collected data tobe viewed, for example, using a web browser or network-basedapplication. For example, while the user is wearing an activity trackingdevice, the device may calculate and store the user's step count usingone or more sensors. The device then transmits data representative ofthe user's step count to an account on a web service, computer, mobilephone, or health station where the data may be stored, processed, andvisualized by the user. Indeed, the device may measure or calculate aplurality of other physiological metrics in addition to, or in place of,the user's step count.

Some physiological metrics include, but are not limited to, energyexpenditure (for example, calorie burn), floors climbed and/ordescended, heart rate, heart rate variability, heart rate recovery,location and/or heading (for example, through GPS), elevation,ambulatory speed and/or distance traveled, swimming lap count, bicycledistance and/or speed, blood pressure, blood glucose, skin conduction,skin and/or body temperature, electromyography, electroencephalography,weight, body fat, caloric intake, nutritional intake from food,medication intake, sleep periods (i.e., clock time), sleep phases, sleepquality and/or duration, pH levels, hydration levels, and respirationrate. The device may also measure or calculate metrics related to theenvironment around the user such as barometric pressure, weatherconditions (for example, temperature, humidity, pollen count, airquality, rain/snow conditions, wind speed), light exposure (for example,ambient light, UV light exposure, time and/or duration spent indarkness), noise exposure, radiation exposure, and magnetic field.

Still further, other metrics can include, without limitation, caloriesburned by a user, weight gained by a user, weight lost by a user, stairsascended, e.g., climbed, etc., by a user, stairs descended by a user,steps taken by a user during walking or running, a number of rotationsof a bicycle pedal rotated by a user, sedentary activity data, driving avehicle, a number of golf swings taken by a user, a number of forehandsof a sport played by a user, a number of backhands of a sport played bya user, or a combination thereof. In some embodiments, sedentaryactivity data is referred to herein as inactive activity data or aspassive activity data. In some embodiments, when a user is not sedentaryand is not sleeping, the user is active. In some embodiments, a user maystand on a monitoring device that determines a physiological parameterof the user. For example, a user stands on a scale that measures aweight, a body fat percentage, a biomass index, or a combinationthereof, of the user.

Furthermore, the device or the system collating the data streams maycalculate metrics derived from this data. For example, the device orsystem may calculate the user's stress and/or relaxation levels througha combination of heart rate variability, skin conduction, noisepollution, and sleep quality. In another example, the device or systemmay determine the efficacy of a medical intervention (for example,medication) through the combination of medication intake, sleep and/oractivity data. In yet another example, the device or system maydetermine the efficacy of an allergy medication through the combinationof pollen data, medication intake, sleep and/or activity data. Theseexamples are provided for illustration only and are not intended to belimiting or exhaustive.

This information can be associated to the users account, which can bemanaged by an activity management application on the server. Theactivity management application can provide access to the users accountand data saved thereon. The activity manager application running on theserver can be in the form of a web application. The web application canprovide access to a number of websites screens and pages that illustrateinformation regarding the metrics in various formats. This informationcan be viewed by the user, and synchronized with a computing device ofthe user, such as a smart phone.

In one embodiment, the data captured by the activity tracking device 100is received by the computing device, and the data is synchronized withthe activity measured application on the server. In this example, dataviewable on the computing device (e.g. smart phone) using an activitytracking application (app) can be synchronized with the data present onthe server, and associated with the user's account. In this way,information entered into the activity tracking application on thecomputing device can be synchronized with application illustrated in thevarious screens of the activity management application provided by theserver on the website.

The user can therefore access the data associated with the user accountusing any device having access to the Internet. Data received by thenetwork 176 can then be synchronized with the user's various devices,and analytics on the server can provide data analysis to providerecommendations for additional activity, and or improvements in physicalhealth. The process therefore continues where data is captured,analyzed, synchronized, and recommendations are produced. In someembodiments, the captured data can be itemized and partitioned based onthe type of activity being performed, and such information can beprovided to the user on the website via graphical user interfaces, or byway of the application executed on the users smart phone (by way ofgraphical user interfaces).

In an embodiment, the sensor or sensors of a device 100 can determine orcapture data to determine an amount of movement of the monitoring deviceover a period of time. The sensors can include, for example, anaccelerometer, a magnetometer, a gyroscope, or combinations thereof.Broadly speaking, these sensors are inertial sensors, which capture somemovement data, in response to the device 100 being moved. The amount ofmovement (e.g., motion sensed) may occur when the user is performing anactivity of climbing stairs over the time period, walking, running, etc.The monitoring device may be worn on a wrist, carried by a user, worn onclothing (using a clip, or placed in a pocket), attached to a leg orfoot, attached to the user's chest, waist, or integrated in an articleof clothing such as a shirt, hat, pants, blouse, glasses, and the like.These examples are not limiting to all the possible ways the sensors ofthe device can be associated with a user or thing being monitored.

In other embodiments, a biological sensor can determine any number ofphysiological characteristics of a user. As another example, thebiological sensor may determine heart rate, a hydration level, body fat,bone density, fingerprint data, sweat rate, and/or a bioimpedance of theuser. Examples of the biological sensors include, without limitation, abiometric sensor, a physiological parameter sensor, a pedometer, or acombination thereof.

In some embodiments, data associated with the user's activity can bemonitored by the applications on the server and the users device, andactivity associated with the user's friends, acquaintances, or socialnetwork peers can also be shared, based on the user's authorization.This provides for the ability for friends to compete regarding theirfitness, achieve goals, receive badges for achieving goals, getreminders for achieving such goals, rewards or discounts for achievingcertain goals, etc.

As noted, an activity tracking device 100 can communicate with acomputing device (e.g., a smartphone, a tablet computer, a desktopcomputer, or computer device having wireless communication access and/oraccess to the Internet). The computing device, in turn, can communicateover a network, such as the Internet or an Intranet to provide datasynchronization. The network may be a wide area network, a local areanetwork, or a combination thereof. The network may be coupled to one ormore servers, one or more virtual machines, or a combination thereof. Aserver, a virtual machine, a controller of a monitoring device, or acontroller of a computing device is sometimes referred to herein as acomputing resource. Examples of a controller include a processor and amemory device.

In one embodiment, the processor may be a general purpose processor. Inanother embodiment, the processor can be a customized processorconfigured to run specific algorithms or operations. Such processors caninclude digital signal processors (DSPs), which are designed to executeor interact with specific chips, signals, wires, and perform certainalgorithms, processes, state diagrams, feedback, detection, execution,or the like. In some embodiments, a processor can include or beinterfaced with an application specific integrated circuit (ASIC), aprogrammable logic device (PLD), a central processing unit (CPU), or acombination thereof, etc.

In some embodiments, one or more chips, modules, devices, or logic canbe defined to execute instructions or logic, which collectively can beviewed or characterized to be a processor. Therefore, it should beunderstood that a processor does not necessarily have to be one singlechip or module, but can be defined from a collection of electronic orconnecting components, logic, firmware, code, and combinations thereof.

Examples of a memory device include a random access memory (RAM) and aread-only memory (ROM). A memory device may be a Flash memory, aredundant array of disks (RAID), a hard disk, or a combination thereof.

Embodiments described in the present disclosure may be practiced withvarious computer system configurations including hand-held devices,microprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers and the like. Severalembodiments described in the present disclosure can also be practiced indistributed computing environments where tasks are performed by remoteprocessing devices that are linked through a wire-based or wirelessnetwork.

With the above embodiments in mind, it should be understood that anumber of embodiments described in the present disclosure can employvarious computer-implemented operations involving data stored incomputer systems. These operations are those requiring physicalmanipulation of physical quantities. Any of the operations describedherein that form part of various embodiments described in the presentdisclosure are useful machine operations. Several embodiments describedin the present disclosure also relate to a device or an apparatus forperforming these operations. The apparatus can be specially constructedfor a purpose, or the apparatus can be a computer selectively activatedor configured by a computer program stored in the computer. Inparticular, various machines can be used with computer programs writtenin accordance with the teachings herein, or it may be more convenient toconstruct a more specialized apparatus to perform the requiredoperations.

Various embodiments described in the present disclosure can also beembodied as computer-readable code on a non-transitory computer-readablemedium. The computer-readable medium is any data storage device that canstore data, which can thereafter be read by a computer system. Examplesof the computer-readable medium include hard drives, network attachedstorage (NAS), ROM, RAM, compact disc-ROMs (CD-ROMs), CD-recordables(CD-Rs), CD-rewritables (RWs), magnetic tapes and other optical andnon-optical data storage devices. The computer-readable medium caninclude computer-readable tangible medium distributed over anetwork-coupled computer system so that the computer-readable code isstored and executed in a distributed fashion.

Although the method operations were described in a specific order, itshould be understood that other housekeeping operations may be performedin between operations, or operations may be performed in an order otherthan that shown, or operations may be adjusted so that they occur atslightly different times, or may be distributed in a system which allowsthe occurrence of the processing operations at various intervalsassociated with the processing.

Although the foregoing embodiments have been described in some detailfor purposes of clarity of understanding, it will be apparent thatcertain changes and modifications can be practiced within the scope ofthe appended claims. Accordingly, the present embodiments are to beconsidered as illustrative and not restrictive, and the variousembodiments described in the present disclosure are not to be limited tothe details given herein, but may be modified within the scope andequivalents of the appended claims.

What is claimed is:
 1. A method comprising: receiving, over a network byat least one server computer, activity data of a first user measured byan activity monitoring device; processing, by synchronization logic ofthe at least one server computer, the activity data of the first user toupdate a value of an activity metric for the first user; in response toupdating the value of the activity metric for the first user,identifying, by the at least one server computer, a change in aninequality relationship between the value of the activity metric for thefirst user and a value of the activity metric for a second user, thechange in the inequality relationship being defined by the value of theactivity metric for the first user changing, from being less than thevalue of the activity metric for the second user, to being greater thanthe value of the activity metric for the second user; in response toidentifying the change in the inequality relationship, triggering amessaging logic of the at least one server computer to prompt the firstuser via a first user device to generate a message to the second userfor display on a second user device.
 2. The method of claim 1, whereinthe inequality relationship between the value of the activity metric forthe first user and the value of the activity metric for the second userdefines a relative ranking of the first user and the second user on acompetitive leaderboard for the activity metric.
 3. The method of claim2, wherein the change in the inequality relationship defines a change inthe relative ranking of the first user and the second user on thecompetitive leaderboard for the activity metric.
 4. The method of claim3, wherein the triggering of the message logic of the at least oneserver computer to prompt the first user to generate a message includesidentifying the change in the relative ranking of the first user and thesecond user.
 5. The method of claim 1, wherein the triggering of themessage logic of the at least one server computer to prompt the firstuser to generate a message to the second user includes triggering anotification to the first user, the notification providing access to aninterface configured to receive input from the first user to definecontent of the message to the second user.
 6. The method of claim 5,wherein the notification is a push notification to a mobile device. 7.The method of claim 5, wherein the interface provides at least oneoption to send a predefined message to the second user.
 8. The method ofclaim 1, wherein the activity metric is defined by one or more of thefollowing: stepcount, elevation climbed, distance traveled, activeamount of time.
 9. A method comprising: receiving, over a network by atleast one server computer, activity data of a first user measured by anactivity monitoring device; processing, by synchronization logic of theat least one server computer, the activity data of the first user toupdate a value of an activity metric for the first user; in response toupdating the value of the activity metric for the first user,identifying, by the at least one server computer, a change in aninequality relationship between the value of the activity metric for thefirst user and a value of the activity metric for a second user, thechange in the inequality relationship being defined by the value of theactivity metric for the first user changing, from being greater than thevalue of the activity metric for the second user, to being less than thevalue of the activity metric for the second user; in response toidentifying the change in the inequality relationship, triggering amessaging logic of the at least one server computer to prompt the firstuser via a first user device to generate a message to the second userfor display on a second user device.
 10. The method of claim 9, whereinthe inequality relationship between the value of the activity metric forthe first user and the value of the activity metric for the second userdefines a relative ranking of the first user and the second user on acompetitive leaderboard for the activity metric.
 11. The method of claim10, wherein the change in the inequality relationship defines a changein the relative ranking of the first user and the second user on thecompetitive leaderboard for the activity metric.
 12. The method of claim11, wherein the triggering of the message logic of the at least oneserver computer to prompt the first user to generate a message includesidentifying the change in the relative ranking of the first user and thesecond user.
 13. The method of claim 9, wherein the triggering of themessage logic of the at least one server computer to prompt the firstuser to generate a message to the second user includes triggering anotification to the first user, the notification providing access to aninterface configured to receive input from the first user to definecontent of the message to the second user.
 14. The method of claim 13,wherein the notification is a push notification to a mobile device.